﻿#define _CRT_SECURE_NO_WARNINGS 1
#include "SList.h"

//初始化通讯录
void InitContact(contact** con)
{
	//将联系人制为空
	*con = NULL;
}
//添加通讯录数据
void AddContact(contact** con)
{
	PeoInfo x = { 0 };
	printf("请输入要添加的联系人姓名：\n");
	scanf("%s", x.name);
	printf("联系人性别：\n");
	scanf("%s", x.sex);
	printf("联系人年龄：\n");
	scanf("%s", x.age);
	printf("联系人电话：\n");
	scanf("%s", x.tel);
	SLPushFront(con, x);
	printf("添加完成\n");
}

//寻找联系人
contact* FindName(contact** con, char* name)
{
	contact* pcur = *con;
	while (pcur)
	{
		if (0 == strcmp(name, pcur->val.name))
		{
			return pcur;
		}
		pcur = pcur->next;
	}
	return NULL;
}
//删除通讯录数据
void DelContact(contact** con)
{
	char name[20] = { 0 };
	printf("请输入要删除的联系人姓名：\n");
	scanf("%s", name);
	contact* pop = FindName(con, name);
	if (pop != NULL)
	{
		SLErase(con, pop);
		printf("删除完毕\n");
	}
	else
	{
		printf("要删除的联系人不存在\n");
	}
}
//展示通讯录数据
void ShowContact(contact** con)
{
	if (!(con && (*con)))
	{
		printf("联系人链表为空\n");
		return;
	}
	printf("%-9s %-9s %-9s %-9s\n", "姓名", "性别", "年龄", "电话");
	contact* pcur = *con;
	while (pcur)
	{
		printf("%-9s %-9s %-9s %-9s\n",
			pcur->val.name,
			pcur->val.sex,
			pcur->val.age,
			pcur->val.tel);
		pcur = pcur->next;
	}
}
//查找通讯录数据
void FindContact(contact** con)
{
	char name[20] = { 0 };
	printf("请输入要查找的联系人姓名：\n");
	scanf("%s", name);
	contact* pop = FindName(con, name);
	if (pop != NULL)
	{
		printf("%-9s %-9s %-9s %-9s\n", "姓名", "性别", "年龄", "电话");
		printf("%-9s %-9s %-9s %-9s\n",
			pop->val.name,
			pop->val.sex,
			pop->val.age,
			pop->val.tel);
	}
	else
	{
		printf("要查找的联系人不存在\n");
	}
}
//修改通讯录数据
void ModifyContact(contact** con)
{
	char name[20] = { 0 };
	printf("请输入要修改的联系人姓名：\n");
	scanf("%s", name);
	contact* pop = FindName(con, name);
	if (pop != NULL)
	{

		printf("请输入联系人的新姓名：\n");
		scanf("%s", pop->val.name);
		printf("联系人的新性别：\n");
		scanf("%s", pop->val.sex);
		printf("联系人的新年龄：\n");
		scanf("%s", pop->val.age);
		printf("联系人的新电话：\n");
		scanf("%s", pop->val.tel);
		printf("修改完成\n");

		printf("%-9s %-9s %-9s %-9s\n", "姓名", "性别", "年龄", "电话");
		printf("%-9s %-9s %-9s %-9s\n",
			pop->val.name,
			pop->val.sex,
			pop->val.age,
			pop->val.tel);
	}
	else
	{
		printf("要修改的联系人不存在\n");
	}
}
//销毁通讯录数据
void DestroyContact(contact** con)
{
	SListDesTroy(con);
}